package exo3;

public class Employe {
	private String nom;
	private double salaireHoraire;
	private int nbHeureHebdo;

	private static final int nbHeureLegal = 40;
	private static final int nbHeureMax = 60;
	private static final double salaireMin = 13;
	private static final double coeff = 1.5;

	public Employe(String nom, double salaireHoraire, int nbHeureHebdo)
			throws Exception {
		this.nom = nom;
		this.salaireHoraire = salaireHoraire;
		this.nbHeureHebdo = nbHeureHebdo;
		if (salaireHoraire < salaireMin) {
			throw new Exception(
					"Erreur, le salaire horaire est inferieur à 13 euros !");
		}
		if (nbHeureHebdo > nbHeureMax) {
			throw new Exception(
					"Erreur, le nombre d'heure hebdo dépasse 60 euros !");
		}
	}

	public double salaireHebdo() {
		if (this.salaireHoraire < salaireMin || this.nbHeureHebdo > nbHeureMax) {
			System.out.println("Une des règle de gestion n'est pas respectée.");
			return 0;
		} else {
			if (this.nbHeureHebdo <= nbHeureLegal) {
				return this.nbHeureHebdo * this.salaireHoraire;
			} else {
				return nbHeureLegal * this.salaireHoraire
						+ (this.nbHeureHebdo - nbHeureLegal) * coeff
						* this.salaireHoraire;
			}
		}
	}

	@Override
	public String toString() {
		StringBuffer sb = new StringBuffer();
		sb.append(this.nom).append(", salaire horaire : ")
				.append(this.salaireHoraire)
				.append(" euros ; heures travaillées : ")
				.append(this.nbHeureHebdo).append(" ; salaire hebdo : ")
				.append(this.salaireHebdo());
		return sb.toString();
	}
}